<?php

namespace app\api\controller;

use app\api\model\LangClassFile;
use app\api\model\LangClassRecite AS ReciteModel;
use app\api\model\LangClassReciteType;
use app\api\model\OauthOrderClass;

class LangClassRecite extends Base
{
    /**
     * 通过班级id获取背诵模块所有单词或者句子 包括答案
     * @param $classId
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     */
    public function index($classId)
    {
        // 课程类型
        $courseType = input('courseType');
        // 类型，1背单词，2背句子
        $type = input('type');
        // 套题ID
        $typeId = input('typeId');
        if ($classId <= 0) {
            return self::sendResult(100, [], '请选择班级');
        }

        if ($typeId <= 0) {
            return self::sendResult(100, [], '请选择套题');
        }

        $courseTypeArr = LangClassFile::attributes('course_type');
        if (!isset($courseTypeArr[$courseType])) {
            return self::sendResult(102, [], '课程类型错误');
        }

        $typeArr = ReciteModel::attributes('type');
        if (!isset($typeArr[$type])) {
            return self::sendResult(100, [], '背诵类型错误');
        }

        $oauthId = $this->oauthInfo['id'];
        $model = ReciteModel::getList($oauthId, $classId, $courseType, $type, $typeId);
        if (isset($model['isBuy']) && ($model['isBuy'] === false)) {
            return self::sendResult(109);
        }
        if (empty($model)) {
            return self::sendResult(137);
        }

        return self::sendResult(self::$okCode, $model);
    }

    /**
     * 上课详情下的套题列表选择
     * @param $classId
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     */
    public function type($classId)
    {
        // 课程类型
        $courseType = input('courseType');
        // 类型，1背单词，2背句子
        $type = input('type');
        if ($classId <= 0) {
            return self::sendResult(100, [], '请选择班级');
        }
        $courseTypeArr = LangClassFile::attributes('course_type');
        if (!isset($courseTypeArr[$courseType])) {
            return self::sendResult(102, [], '课程类型错误');
        }

        $typeArr = ReciteModel::attributes('type');
        if (!isset($typeArr[$type])) {
            return self::sendResult(100, [], '背诵类型错误');
        }

        $oauthId = $this->oauthInfo['id'];
        // 判断是否已经购买
        $buyLog = OauthOrderClass::getOneByClass($oauthId, $classId);
        if (empty($buyLog)) {
            return self::sendResult(109);
        }

        $model = LangClassReciteType::getType($classId, $courseType, $type);
        return self::sendResult(self::$okCode, $model);
    }
}